﻿using STHPMS1.ICore.I_Entity.Info;
using STHPMS1.ICore.I_Entity.Stmpms1;
using System;
using System.Collections.Generic;
using System.Linq.Expressions;

namespace STHPMS1.ICore.I_BLL.Bus
{
    public interface IDp_Preven_DetailBill : IBll
    {
        void Save<T>(T entity) 
            where T:class ,IDp_Preven_Detail;

        void Remove(IDp_Preven_Detail entity);

        IEnumerable<T> Get<T>(Expression<Func<T, bool>> predicate, IPagingInfo info)
            where T : class, IDp_Preven_Detail;

        /// <summary>
        /// 获取分析年度的所有养护路段
        /// </summary>
        /// <param name="rdwayid"></param>
        /// <returns></returns>
        List<string> GetMainSegid(string anniname, string analy_year);
        /// <summary>
        /// 计算等效年度费用
        /// </summary>
        /// <param name="rdwayid"></param>
        void SetEAC(string anniname, string analy_year);
        /// <summary>
        /// 自动选取复选措施
        /// </summary>
        /// <param name="rdwayid"></param>
        /// <param name="values"></param>
        void SetSECON_MEASURE(string anniname, string analy_year, int values);
        

       
 
        /// <summary>
        /// 获取养护年份 复选措施和终选措施都为1
        /// </summary>
        /// <param name="mainsegid"></param>
        /// <returns></returns>
        string GetMainYear(string mainsegid);
        /// <summary>
        /// 获取总费用 复选措施和终选措施都为1
        /// </summary>
        /// <param name="mainsegid"></param>
        /// <returns></returns>
        double GetCost(string mainsegid);

        /// <summary>
        /// 获取当前路线的所有初选措施
        /// </summary>
        /// <param name="rdwayid"></param>
        /// <returns></returns>
        List<string> GetMeas_ini(string rdwayid);
    }
}
